C++
/*--------myClass.h--------*/
public:
//Q_INVOKABLE 宏标记
Q_INVOKABLE QString fn();
//即:在函数声明前加 Q_INVOKABLE
/*--------myClass.cpp--------*/
#include "myclass.h"
QString MyClass::fn()
{
qDebug()<<"hello";
return "hello";
}
/*--------main.cpp--------*/
#include "myclass.h"
#include <QQmlContext>
int main(int argc, char *argv[])
{
//创建类实例
MyClass myObject;
//语法:类名+ 实例名;
//通过实例名访问,QML 中 通过 name 访问
engine.rootContext()->setContextProperty("name", &myObject);
//语法:实例别名+ 实例名;(实例别名可以与实例名一样)
}
QML
import QtQuick
import QtQuick.Controls
Button {
//通过👉实例别名.函数名👈访问
onClicked: console.log( name.fn() )
}